﻿namespace TestTool.Proxies.Onvif
{
    using System;
    using System.CodeDom.Compiler;
    using System.ComponentModel;
    using System.Diagnostics;
    using System.Xml;
    using System.Xml.Serialization;

    [Serializable, DesignerCategory("code"), XmlType(Namespace="http://www.onvif.org/ver10/schema"), GeneratedCode("svcutil", "3.0.4506.2152"), DebuggerStepThrough]
    public class ImagingOptions20
    {
        private XmlAttribute[] anyAttrField;
        private BacklightCompensationOptions20 backlightCompensationField;
        private FloatRange brightnessField;
        private FloatRange colorSaturationField;
        private FloatRange contrastField;
        private ExposureOptions20 exposureField;
        private ImagingOptions20Extension extensionField;
        private FocusOptions20 focusField;
        private IrCutFilterMode[] irCutFilterModesField;
        private FloatRange sharpnessField;
        private WhiteBalanceOptions20 whiteBalanceField;
        private WideDynamicRangeOptions20 wideDynamicRangeField;

        [XmlAnyAttribute]
        public XmlAttribute[] AnyAttr
        {
            get
            {
                return this.anyAttrField;
            }
            set
            {
                this.anyAttrField = value;
            }
        }

        [XmlElement(Order=0)]
        public BacklightCompensationOptions20 BacklightCompensation
        {
            get
            {
                return this.backlightCompensationField;
            }
            set
            {
                this.backlightCompensationField = value;
            }
        }

        [XmlElement(Order=1)]
        public FloatRange Brightness
        {
            get
            {
                return this.brightnessField;
            }
            set
            {
                this.brightnessField = value;
            }
        }

        [XmlElement(Order=2)]
        public FloatRange ColorSaturation
        {
            get
            {
                return this.colorSaturationField;
            }
            set
            {
                this.colorSaturationField = value;
            }
        }

        [XmlElement(Order=3)]
        public FloatRange Contrast
        {
            get
            {
                return this.contrastField;
            }
            set
            {
                this.contrastField = value;
            }
        }

        [XmlElement(Order=4)]
        public ExposureOptions20 Exposure
        {
            get
            {
                return this.exposureField;
            }
            set
            {
                this.exposureField = value;
            }
        }

        [XmlElement(Order=10)]
        public ImagingOptions20Extension Extension
        {
            get
            {
                return this.extensionField;
            }
            set
            {
                this.extensionField = value;
            }
        }

        [XmlElement(Order=5)]
        public FocusOptions20 Focus
        {
            get
            {
                return this.focusField;
            }
            set
            {
                this.focusField = value;
            }
        }

        [XmlElement("IrCutFilterModes", Order=6)]
        public IrCutFilterMode[] IrCutFilterModes
        {
            get
            {
                return this.irCutFilterModesField;
            }
            set
            {
                this.irCutFilterModesField = value;
            }
        }

        [XmlElement(Order=7)]
        public FloatRange Sharpness
        {
            get
            {
                return this.sharpnessField;
            }
            set
            {
                this.sharpnessField = value;
            }
        }

        [XmlElement(Order=9)]
        public WhiteBalanceOptions20 WhiteBalance
        {
            get
            {
                return this.whiteBalanceField;
            }
            set
            {
                this.whiteBalanceField = value;
            }
        }

        [XmlElement(Order=8)]
        public WideDynamicRangeOptions20 WideDynamicRange
        {
            get
            {
                return this.wideDynamicRangeField;
            }
            set
            {
                this.wideDynamicRangeField = value;
            }
        }
    }
}

